#ifndef BEHAVIOR_H_
  #define BEHAVIOR_H_
#include "../Kinematic.h"
#include "../Steering.h"

class Character;

class Behavior{
  protected:
    /*
     * Estos son los personajes. Es necesario guardarlos aqui para poder
     * obtener su kinematic dinamicamente.
     * Tienen que ser de solo lectura!
     */
    Character* theCharacter;
    Character* theTarget;
    /*
     * Kinematic de los personajes. Almacenada en estas variables por
     * comodidad a la hora de escribir los algoritmos.
     */
    Kinematic* character;
    Kinematic* target;

  public:
    Behavior();
    virtual Steering* getSteering()=0;
    void SetTarget(Character* k);
    void SetCharacter(Character* k);
    void updateKinematicData();
    const Character* GetTarget();
    const Character* GetCharacter();
};


#endif
